# coding=utf-8
# 全世界最帅的帅哥
from typing import Protocol


class StorageAdapter(Protocol):

    @classmethod
    def create_bucket(cls, bucket_name):
        """
        创造桶
        :param bucket_name:
        :return:
        """
        pass

    @classmethod
    def upload_file(cls, bucket_name, file_name, data, length, content_type):
        """
        上传文件
        :param bucket_name:
        :param file_name:
        :param data:
        :param length:
        :param content_type:
        :return:
        """
        pass

    @classmethod
    def get_all_bucket(cls):
        """
        得到所有桶
        :return:
        """
        pass

    @classmethod
    def get_all_file(cls, bucket_name):
        """
        得到所有文件
        :param bucket_name:
        :return:
        """
        pass

    @classmethod
    def download_file(cls, bucket_name, object_name):
        """
        下载文件
        :param bucket_name:
        :param object_name:
        :return:
        """
        pass

    @classmethod
    def remove_bucket(cls, bucket_name):
        """
        删除桶
        :param bucket_name:
        :return:
        """
        pass

    @classmethod
    def delete_object(cls, bucket_name, object_name):
        """
        删除文件
        :param bucket_name:
        :param object_name:
        :return:
        """
        pass
